Back to all projects Mobile game · Arcade flyer

Drone Dash

An endless arcade flyer. Pilot a drone through dense skies — dodge birds, jets, rockets, storms and space debris as you climb from peaceful villages all the way to the stratosphere and beyond. Built around tap-and-swipe controls, five distinct zones, power-ups that genuinely change how you fly, and full offline play.

Client Personal product
Role Designer · developer
Released Apr 2026 · live
Platform Android · Google Play
01 · Countryside
01 · Countryside
02 · Dodge
02 · Dodge
03 · Stratosphere
03 · Stratosphere
04 · Power-up
04 · Power-up
05 · Storm zone
05 · Storm zone
Overview

A pure arcade loop,
built for one more run.

Drone Dash is a one-thumb game with a long tail. Tap to ascend, swipe to dodge, climb forever. The skies get meaner the higher you go — birds and balloons give way to fighter jets, then storms, then satellites and asteroids in low orbit. Every run is short, fast, and a little bit different.

01 · The brief

Hyper-casual without the noise.

Most arcade flyers ship with a wall of pop-ups, a five-tab shop and a paywall before the first run. I wanted the opposite — open the app, swipe up, you are already playing.

02 · The approach

One input, five worlds, infinite sky.

A single swipe handles all movement. Underneath it sits a procedurally biased spawner that pushes the player through five zones — countryside, city, storm, stratosphere, orbit — each with its own obstacles, palette and feel.

03 · The outcome

A run that ends with "one more".

Live on Google Play. Short sessions, sticky retries, no internet required. Power-ups (shield, rocket boost, energy orb) shape the run instead of decorating it — a shield run plays nothing like a boost run.

What we shipped

Six systems that
keep the sky alive.

Every system is in service of one thing: the next run should feel a little different. Spawners, pickups, zone transitions and a clean game-over screen — small parts that make a short loop worth restarting.

  • Five distinct zones

    Countryside, city, storm front, stratosphere, low orbit. Each zone re-skins the sky and rotates in its own obstacle pool.

  • One-thumb controls

    Tap to climb, swipe to dodge. Hit detection tuned for fairness — you lose because you missed, not because the input ate it.

  • Power-ups that change the run

    Shield absorbs one hit. Rocket boost makes you invincible and fast. Energy orb cranks the score multiplier. Stacking them is the meta.

  • Endless obstacle variety

    Birds, bats, owls, delivery drones, fighter jets, falling satellites, asteroids and storm cells — weighted by altitude.

  • No internet required

    Full offline play. Scores save locally; everything works on a plane, in a tunnel, or on a dead WiFi.

  • Personal best chase

    A clean run-over screen with altitude, score, and a punchy "new best" moment. The only progression that matters is yours.

spawner.kt
// The sky is a function of altitude.
// Each zone reweights what can spawn.

enum class Zone { RURAL, CITY, STORM, STRATO, ORBIT }

fun zoneFor(altitude: Int): Zone = when {
  altitude < 400  -> Zone.RURAL
  altitude < 1200 -> Zone.CITY
  altitude < 2400 -> Zone.STORM
  altitude < 4000 -> Zone.STRATO
  else           -> Zone.ORBIT
}

fun nextHazard(zone: Zone, run: Run): Hazard {
  val pool = hazards[zone] ?: error("zone")
  val heat = 1f + run.streak * 0.04f  // ramps
  return pool.pickWeighted(rng, heat)
}
Highlights

What's working.

Drone Dash is live on Google Play and still being tuned. Early signals from the first few weeks.

5 zones
countryside, city, storm front, stratosphere and low orbit — each with its own palette and hazard pool
RURAL CITY STORM STRATO ORBIT
3 power-ups
shield, rocket boost and energy orb — each one bends the run into a different shape
0ms offline
no network, no accounts, no ads pre-roll — open the app, swipe up, the run starts
Stack

Built with.

AAndroid KKotlin JCJetpack Compose CvCanvas / Game Loop FBFirebase AMAdMob FFigma PxAseprite
Keep exploring

Other work.

Available for new work

Have a project
in mind?

I'm currently taking on freelance work and full-time roles. Drop a line — I usually reply within a day.